unit Werten;

interface

uses
  SysUtils,
{$IFDEF MSWINDOWS}
  Windows, WinProcs,
{$ENDIF}
  Messages, Classes,
  {$IFDEF MSWINDOWS}
  Graphics, Controls, Forms,
  {$ELSE}
  QGraphics, QControls, QForms,
  {$ENDIF}
  Dialogs, StdCtrls, Buttons, ExtCtrls;

type
  TWertenFenster = class(TForm)
    Label1: TLabel;
    RadioGroup1: TRadioGroup;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Memo1: TMemo;
    Label4: TLabel;
    procedure FormShow(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  WertenFenster: TWertenFenster;

implementation

Uses sdimain, Klass, Mannsch;

{$R *.DFM}

procedure TWertenFenster.FormShow(Sender: TObject);
Var Spiel : TMannschaftsspiel;
    H     : ^String;
    T     : Integer;
begin
  Spiel := Klasse.Spiel_nach_Gegner( SDIAppForm.MannschaftA, SDIAppForm.MannschaftB );
  RadioGroup1.Items.Clear;
  RadioGroup1.Items.Add(Klasse.Teamname(SDIAppForm.MannschaftA));
  RadioGroup1.Items.Add(Klasse.Teamname(SDIAppForm.MannschaftB));
  Memo1.Lines.Clear;
  RadioGroup1.ItemIndex := 0;

  // Bemerkungen eintragen
  If Spiel <> Nil then
   Begin
    If Spiel.Sieger = SDIAppForm.MannschaftB then
     RadioGroup1.ItemIndex := 1;

    Memo1.Visible := False;
    For T := 0 to Spiel.Bemerkungszeilen-1 Do
    Begin
      H := Spiel.Bemerkung.Items[ T ];
      Memo1.Lines.Add( H^ );
    End;
    Memo1.Visible := True;
   End;
end;

procedure TWertenFenster.BitBtn2Click(Sender: TObject);
begin
 Hide;
end;

procedure TWertenFenster.BitBtn1Click(Sender: TObject);
Var Spiel      : TMannschaftsspiel;
    Siegpunkte : Integer;
    T          : Integer;
    Aenderung  : Boolean;
    Neu        : Boolean;
begin
 Klasse.StartUndoTransaktion( False, 'Spiel werten' );
 If Klasse.Spielabbruch then
  Siegpunkte := Klasse.Spielsystem.Zeilenanzahl Div 2 + 1
 else Siegpunkte := Klasse.Spielsystem.Zeilenanzahl;

 Neu := False;
 Spiel := Klasse.Spiel_nach_Gegner( SDIAppForm.MannschaftA, SDIAppForm.MannschaftB );
 If Spiel = Nil then
  Begin
   Spiel := TMannschaftsSpiel.Create_new;
   Neu := True;
  End;

 Spiel.Wertung := True;

 Spiel.HeimTeam := SDIAppForm.MannschaftA;
 Spiel.AuswaertsTeam := SDIAppForm.MannschaftB;

 { Heimsieg?}
 If RadioGroup1.ItemIndex = 0 then
  Begin
   Spiel.Ergebnis_setzen(Siegpunkte,0);
   Spiel.Saetze_setzen(Siegpunkte*Klasse.Gewinnsaetze,0);
  end
 else
  Begin
   Spiel.Ergebnis_setzen(0,Siegpunkte);
   Spiel.Saetze_setzen(0,Siegpunkte*Klasse.Gewinnsaetze);
  end;

 If Spiel.Bemerkung = nil then Spiel.Bemerkung := TList.Create;
 If Spiel.Bemerkungszeilen <> Memo1.Lines.Count then
 Begin
   BemerkungLoeschen( Spiel.Bemerkung, Spiel.Bemerkungszeilen );
   Klasse.AenderungEintragen( 'Spiel werten' );
 End;
 For T := 0 to Memo1.Lines.Count-1 Do
 Begin
   Aenderung := BemerkungAbgleichen( Spiel.Bemerkung, Memo1.Lines.Strings[T],
                                     T, Spiel.Bemerkungszeilen );
   If Aenderung then
    Begin
     Klasse.AenderungEintragen( 'Spiel werten' );
     Spiel.AenderungEintragen;
    End;
 End;

 If Neu then Klasse.Add_Spiel(Spiel);
 Klasse.EndUndoTransaktion;
 Hide;
end;

end.
